/**
 * 2018/5/10
 * created c.y
 * 这里是一些常用的方法
 */

/**
 * 把后台返回以逗号分隔字段值，组装成数组
 * @param content {String} 后台返回以逗号分隔字段值
 * @return {Array}
 */
function commaBreakToArray (content) {
    let resultList = [];
    if (!(content instanceof String)) {
        throw new Error('该参数不是一个字符串');
    }
    if (content.indexOf(',') !== -1) {
        resultList = content.split(',');
    } else {
        resultList.push(content);
    }
    return resultList;
}

/**
 * 把数组元素用逗号进行分割，组装后传递给后台
 * @param contentList {Array}
 * @return {string}
 */
function arrayBreakToComma (contentList) {
    let result = '';
    if (!(contentList instanceof Array)) {
        throw new Error('该参数不是一个数组');
    }
    let lastIndex = contentList.length - 1;
    contentList.forEach(function (item, index) {
        if (lastIndex !== index) {
            result += item + ',';
        } else {
            result += item;
        }
    });
    return result;
}

/**
 * 以换行符进行分割用户输入的申请资料的内容等等，转为数组
 * @param content
 * @return {Array}
 */
function lineBreakToArray (content) {
    return content.split(/[\r\n]/g);
}

/**
 * 把数组转换成有换行符的字符串
 * @param listValue
 * @return {string}
 * @constructor
 */
function arrayBreakToLine (listValue) {
    // 判断listValue是否为数组
    if (listValue instanceof Array) {
        let tmpContent = '';
        listValue.forEach(function (item) {
            tmpContent += item + '\n';
        });
        return tmpContent;
    }
}

// 产品配置信息的，提交给后台的单位的统一，放款时长统一为秒
function getUnitValue (initVal, code, unitList) {
    let resultVal = '';
    if (!(unitList instanceof Array)) {
        throw new Error('该参数不是一个数组');
    }
    for (let i = 0; i < unitList.length; i++) {
        if (unitList[i].code === code) {
                resultVal = initVal * unitList[i].val;
        }
    }
    return resultVal;
}

/**
 * 列表查看预览，得到相应的单位
 * @param code select选中的code
 * @param unitList 初始化的list
 * @return {string} 返回code对应的name值
 */
function getUnit (code, unitList) {
    let resultName = '';
    if (!(unitList instanceof Array)) {
        throw new Error('该参数不是一个数组');
    }
    for (let i = 0; i < unitList.length; i++) {
        if (unitList[i].code === code) {
            resultName = unitList[i].name;
        }
    }
    return resultName;
}


/**
 * 输入框只能输入数字与小数点或者只能正整数
 * @param inputVal { String } 输入的值
 * @param type { String } 校验的类型
 */
function handleInputValid (inputVal, type) {
    if (inputVal) {
        // 验证小数点与整数
        if (type === 'dot') {
            return inputVal.replace(/[^\d.]/g, '');
        // 验证正整数
        } else if (type === 'int') {
            return inputVal.replace(/[^\d]/g, '');
        }
    }
}

export default {
    commaBreakToArray,
    arrayBreakToComma,
    lineBreakToArray,
    arrayBreakToLine,
    getUnitValue,
    getUnit,
    handleInputValid
}